Batch Script এ সরাসরি try-catch ব্লক যেমন আপনি অন্যান্য প্রোগ্রামিং ভাষায় যেমন C# বা Java এ দেখতে পান, তা ব্যবহার করা যায় না। তবে, Batch Script এ Error Handling করা সম্ভব এবং কিছু কমান্ডের মাধ্যমে আপনি ত্রুটি শনাক্ত এবং পরিচালনা করতে পারেন। Batch Script এ Error Handling করার জন্য সাধারণত ErrorLevel এবং IF কন্ডিশন ব্যবহার করা হয়। এখানে, আমরা try-catch এর মতো ত্রুটি পরিচালনার কিছু কৌশল আলোচনা করব, যা Batch Script এর সাথে কাজ করতে সাহায্য করবে।
ErrorLevel ব্যবহার করে Error Handling
Batch Script এ কোনো কমান্ড চালানোর পর তার ফলাফল বা স্ট্যাটাস কোড (Exit Code) দেখার জন্য ErrorLevel ব্যবহার করা হয়। ErrorLevel এর মান অনুযায়ী আপনি ত্রুটি চেক করতে পারেন এবং সেই অনুযায়ী স্ক্রিপ্টের আচরণ পরিবর্তন করতে পারেন।
ErrorLevel কী?
ErrorLevel হল একটি স্ট্যাটাস কোড যা সাধারণত কোনো কমান্ডের সফলতা বা ব্যর্থতার তথ্য প্রদান করে:
- 0 মানে কমান্ড সফলভাবে সম্পন্ন হয়েছে।
- 1 বা তার বেশি মানে কমান্ডে ত্রুটি ঘটেছে।
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% neq 0 (
echo Error occurred during file copy.
) else (
echo File copied successfully.
)
এখানে:
copyকমান্ডটি চালানোর পর%errorlevel%চেক করা হচ্ছে।- যদি
ErrorLevel0 না হয় (অর্থাৎ, যদি কোনো ত্রুটি ঘটে), তবেError occurred during file copyমেসেজটি প্রদর্শিত হবে। - অন্যথায়,
File copied successfullyমেসেজটি দেখানো হবে।
ErrorLevel এর আরো বিস্তারিত ব্যবহার
কিছু পরিস্থিতিতে, আপনি নির্দিষ্ট ত্রুটি কোড চেক করতে চাইলে, ErrorLevel এর বিভিন্ন মানের সাথে কাজ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি জানেন যে কোনো নির্দিষ্ট কমান্ড 1 বা 2 এর মধ্যে কোনো ত্রুটি সৃষ্টি করবে, তাহলে আপনি সেগুলোকেও চেক করতে পারেন।
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% == 1 (
echo File not found.
) else if %errorlevel% == 2 (
echo Access denied.
) else if %errorlevel% neq 0 (
echo Unknown error occurred.
) else (
echo File copied successfully.
)
এখানে:
- যদি
ErrorLevel1 হয়, তা হলেFile not foundমেসেজটি দেখানো হবে। - যদি
ErrorLevel2 হয়, তা হলেAccess deniedমেসেজটি প্রদর্শিত হবে। - অন্য কোনো
ErrorLevelথাকলেUnknown error occurredমেসেজটি দেখানো হবে। - যদি
ErrorLevel0 থাকে, তবেFile copied successfullyমেসেজটি প্রদর্শিত হবে।
Goto এবং Error Handling
Batch Script এ ত্রুটি পরিচালনার জন্য goto কমান্ডও ব্যবহার করা যেতে পারে। goto ব্যবহার করে আপনি একটি নির্দিষ্ট লেবেলে চলে যেতে পারেন যদি কোনো ত্রুটি ঘটতে থাকে, যাতে পরবর্তী কমান্ডগুলো এক্সিকিউট না হয় বা আপনি ত্রুটির পরবর্তী পদক্ষেপ নিতে পারেন।
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% neq 0 goto ErrorHandler
echo File copied successfully.
goto End
:ErrorHandler
echo Error occurred during file copy.
goto End
:End
এখানে:
- যদি
copyকমান্ডে ত্রুটি ঘটে, তাহলে স্ক্রিপ্টটিErrorHandlerলেবেলে চলে যাবে এবং ত্রুটির মেসেজ প্রদর্শন করবে। - যদি কোনো ত্রুটি না ঘটে, তবে
File copied successfullyমেসেজটি প্রদর্শিত হবে।
Logs তৈরি এবং Error Logging
ত্রুটির লগ তৈরি করার জন্য Batch Script এ আপনি সহজেই ত্রুটির তথ্য একটি টেক্সট ফাইলে সংরক্ষণ করতে পারেন। এটি মূলত স্ক্রিপ্টের ডিবাগিং এবং ত্রুটি শনাক্তকরণে সাহায্য করে।
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% neq 0 (
echo Error occurred at %date% %time%: Error level %errorlevel% >> C:\error_log.txt
echo Error occurred. Check error_log.txt for details.
) else (
echo File copied successfully.
)
এখানে:
- যদি কোনো ত্রুটি ঘটে, তাহলে ত্রুটির সময়, তারিখ এবং
ErrorLevelসহ একটি লগ ফাইল (C:\error_log.txt) তৈরি হবে। - আপনি
>>অপারেটর ব্যবহার করে লগ ফাইলে নতুন ত্রুটি যুক্ত করতে পারেন।
Batch Script এ Error Handling এর সীমাবদ্ধতা
Batch Script এ ত্রুটি পরিচালনা করার জন্য সরাসরি try-catch ব্লক নেই, তবে ErrorLevel এবং if কন্ডিশন ব্যবহার করে আপনি কার্যকরভাবে ত্রুটি পরিচালনা করতে পারেন। তবে, এর কিছু সীমাবদ্ধতা রয়েছে:
- এটি একটি প্রাথমিক স্তরের ত্রুটি শনাক্তকরণ এবং পরিচালনা প্রদান করে।
- কোনো গভীর ত্রুটি বিশ্লেষণ বা ফাংশনাল ত্রুটি হ্যান্ডলিং (যেমন Exception Handling) করতে Batch Script কম কার্যকর হতে পারে।
সারাংশ
Batch Script এ সরাসরি try-catch ব্যবহার করা সম্ভব না হলেও, ErrorLevel এবং if কন্ডিশনের মাধ্যমে ত্রুটি পরিচালনা করা সম্ভব। আপনি বিভিন্ন ত্রুটি কোডের উপর ভিত্তি করে নির্দিষ্ট পদক্ষেপ নিতে পারেন, যেমন ফাইল কপি করতে ব্যর্থ হলে একটি লগ তৈরি করা বা স্ক্রিপ্টটি বন্ধ করে দেওয়া। goto কমান্ডের মাধ্যমে আপনি ত্রুটির পরবর্তী প্রক্রিয়াও নির্ধারণ করতে পারেন, যাতে স্ক্রিপ্টটি আরও স্থিতিশীল এবং কার্যকর হয়।
Read more